package top.linruchang.enums;

/**
 * 作用：
 *
 * @author LinRuChang
 * @version 1.0
 * @date 2020/09/06
 * @since 1.8
 **/
public class MyConstants {

    //空对象
    public static final Object EMPTY_OBJ = new Object();

    // ============================HTTP请求方式==========================================

    public static final String UTF_8 = "utf-8";

    // ============================wakeTime相关的请求地址==========================================

    public final String WAKETIME_PREFIX = "https://wakatime.com/";
    public final String WAKETIME_RESOURCES_PREFIX = "https://wakatime.com/api/v1/";

    //获取授权码
    public final String AUTHORIZE_SUFFIX = "oauth/authorize";

    //获取资源访问Token
    public final String TOKEN_SUFFIX = "oauth/token";

    //将用户获取到的自资源访问Token失效
    public final String REVOKE_SUFFIX = "oauth/revoke";

    //自创建帐户以来记录的总时间
    public final String ALL_TIME_SINCE_TODAY_SUFFIX = "users/current/all_time_since_today";

    //给定天的用户的编码活动作为持续时间数组
    //URL参数
    //      date - Date- 所需 - 申请日;持续时间将从上午 12 点返回到晚上 11：59 在用户的时区进行。
    //      project - String- 可选 - 仅显示此项目的持续时间。
    //      branches - String- 可选 - 仅显示这些分支的持续时间;逗号分隔的分支名称列表。
    public final String DURATIONS_SUFFIX = "users/current/durations";

    //为用户创建表示活动的检测信号
    public final String HEARTBEATS_SUFFIX = "users/current/heartbeats";

    //获取有关 WakaTime 的信息 - 例如 WakaTime 服务器使用的公共 IP 地址列表
    public final String META_SUFFIX = "meta";

    //当前用户被 WakaTime 监控记录的项目列表
    public final String PROJECTS_SUFFIX = "users/current/projects";

    //给定时间范围内的用户编码活动 - range值：last_7_days, last_30_days, last_6_months, last_year
    //因为需要计算 - 需要多次请求或者第一次请求后等待片刻在请求后才有可能获取到数据
    // URL参数
    //    project - String- 可选 - 显示仅限于此项目的更详细的统计数据
    public final String STATS_SUFFIX = "users/current/stats/【range】";

    //给定时间范围内的用户编码活动，以天分段的摘要数组。
    //URL参数
    //      start - Date- 必需 - 时间范围的开始日期。
    //      end - Date- 必需 - 时间范围的结束日期。
    //      project - String- 可选 - 仅显示记录到此项目的时间。
    //      branches - String- 可选 - 仅显示这些分支的编码活动;逗号分隔的分支名称列表。
    //      timeout - Integer- 可选 - 将检测信号加入持续时间时使用的超时首选项。默认用户的超时值。有关详细信息，请参阅常见问题解答。
    //      writes_only - Boolean- 可选 - writes_only首选项。默认为用户writes_only设置。
    //      timezone - String- 可选 - 给定开始和结束日期的时区。默认为用户的时区。
    public final String SUMMARIES_SUFFIX = "users/current/summaries";

    //获取当前用户wakatime发送数据的所有插件列表
    public final String USER_AGENT_SUFFIX = "users/current/user_agents";

    //获取当前用户个人信息
    public final String USER_SUFFIX = "users/current";


}
